#ifndef _POINT_H
#define _POINT_H

struct Point
{
	int x, y;
	Point(int _x = 0, int _y = 0) : x(_x), y(_y) {}
};

namespace std
{
	template <>
	struct hash<Point>
	{
		using result_type = unsigned long long;
		using arguement_type = Point;
		result_type operator()(const arguement_type& ob)
		{
			return (static_cast<result_type>(ob.x) << 32) | ob.y;
		}
	};
};

#endif